<?php
//代理商列表
namespace app\common\logic;

use think\Db;
use think\Request;
use think\File;
use Qcloud\cos\Api;

class Upload
{

    /**
     *公共上传类
     * @param string $inputName
     * @param string $dstPath
     * @param int $size
     * @param string $ext
     * @return array
     */
    public function upload($inputName = '', $dstPath = '', $size = 1000 * 200, $ext = 'jpg,png,gif')
    {
        $inputName = $inputName? $inputName : 'image';
        $file = Request::instance()->file($inputName);

        if (! $file instanceof  File) {
            return output(-1, '非法上传');
        }
        //验证扩展和大小
        if ( !$file->validate(['size'=>$size,'ext'=>$ext])->check() ) {
            return output(-1, $file->getError());
        }

        $info = $file->move(ROOT_PATH.'public'.DS.'uploads');
        $file = $info->getSaveName();
        if ($file) {
            $cosApi = new Api(config('Qcloud'));
            $bucket = config('Qcloud.bucket');
            $src = ROOT_PATH . 'public'.DS.'uploads'.DS.$file;
            $dstFile = str_replace('\\', '/', $file);
            $dst = $dstPath.$dstFile;
            $ret = $cosApi->upload($bucket, $src, $dst);
            $res['url'] = config('txyunview') . '/' . $dst;

            if($ret['code']==0){
                //获取资源文件路径（包含了APPID和bucketname）
                $path = $ret['data']['resource_path'];
                //计算bucketname长度
                $len = strlen($bucket);
                $start = strpos($path,$bucket);   //计算bucketname第一次出现的问题
                $start +=$len;
                $newpath = substr($path,$start);  //截取路径
                $res['code'] = '1';
                $res['picture'] = $newpath;  //资源文件路径（需要前面添加上域名地址才可以使用）
                $res['url'] = config('txyunview') . '/' . $dst;
                return output(0, $res);
            } else {
                return output(-1, '上传失败');
            }

        } else {
            return output(-1, '上传失败');
        }
    }



}